/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package Families.impl;

import Families.FamiliesPackage;
import Families.Family;
import Families.Member;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.internal.cdo.CDOObjectImpl;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Family</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link Families.impl.FamilyImpl#getLastName <em>Last Name</em>}</li>
 *   <li>{@link Families.impl.FamilyImpl#getFather <em>Father</em>}</li>
 *   <li>{@link Families.impl.FamilyImpl#getMother <em>Mother</em>}</li>
 *   <li>{@link Families.impl.FamilyImpl#getSons <em>Sons</em>}</li>
 *   <li>{@link Families.impl.FamilyImpl#getDaughters <em>Daughters</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class FamilyImpl extends CDOObjectImpl implements Family {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FamilyImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return FamiliesPackage.Literals.FAMILY;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected int eStaticFeatureCount() {
		return 0;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLastName() {
		return (String)eGet(FamiliesPackage.Literals.FAMILY__LAST_NAME, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLastName(String newLastName) {
		eSet(FamiliesPackage.Literals.FAMILY__LAST_NAME, newLastName);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Member getFather() {
		return (Member)eGet(FamiliesPackage.Literals.FAMILY__FATHER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setFather(Member newFather) {
		eSet(FamiliesPackage.Literals.FAMILY__FATHER, newFather);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Member getMother() {
		return (Member)eGet(FamiliesPackage.Literals.FAMILY__MOTHER, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMother(Member newMother) {
		eSet(FamiliesPackage.Literals.FAMILY__MOTHER, newMother);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Member> getSons() {
		return (EList<Member>)eGet(FamiliesPackage.Literals.FAMILY__SONS, true);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@SuppressWarnings("unchecked")
	public EList<Member> getDaughters() {
		return (EList<Member>)eGet(FamiliesPackage.Literals.FAMILY__DAUGHTERS, true);
	}

} //FamilyImpl
